﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace ProyectoEscuela
{
    // En el ultimo deshabilitar el boton anterior

    public partial class frmLicXSaludAutorizadoXdir : ProyectoEscuela.frmBaseForm
    {

        dbProyectoEscuelaDataContext db = new dbProyectoEscuelaDataContext();
        frmBuscarPersona frmBuscarPersona;
        Agente mAgente;
        TabPage nextTab;
        TabPage previousTab;
        int currentTab;
        uSR01 uSR01 = new uSR01();
        uIL_01 uIL_01 = new uIL_01();
        uDJ02 uDJ02 = new uDJ02();
        uDJ01 uDJ01 = new uDJ01();
        uOL01 uOl01 = new uOL01();
        int midLicencia;


        // Licencia mLicencia;

        public frmLicXSaludAutorizadoXdir()
        {
            InitializeComponent();
            mAgente = new Agente();
            frmBuscarPersona = new frmBuscarPersona("agente");

        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            frmBuscarPersona = new frmBuscarPersona("agente");


            try
            {

                if (this.txtnDoc.Text.Trim().Length == 0)
                {

                    frmBuscarPersona.ShowDialog();
                    mAgente = frmBuscarPersona.getAgente();
                    txtnDoc.Text = mAgente.Numdoc;
                    lblApyNom.Text = mAgente.Apellido + " " + mAgente.Nombre;


                }
                else
                {
                    mAgente = mAgente.getAgente(this.cmbTipoDoc.Text, this.txtnDoc.Text);
                    uSR01.setAgente(mAgente);
                    lblApyNom.Text = mAgente.Apellido + " " + mAgente.Nombre;

                }

                cmbCargos.DataSource = mAgente.getMisCargos(); ;
                cmbCargos.DisplayMember = "Descripcion";
                cmbCargos.ValueMember = "CodCargo";



            }
            catch (Exception ex)
            {

                System.Windows.Forms.MessageBox.Show(ex.Message);
            }


            //frm = null;

        }

        private void cmbAnexo_SelectedIndexChanged(object sender, EventArgs e)
        {

            try
            {
                var results = mAgente.getMisLicencias(Int32.Parse(this.cmbCargos.SelectedValue.ToString()), Int32.Parse(this.cmbSituacionDeRevista.SelectedValue.ToString()), 2008, this.cmbAnexo.Text.Substring(0, 2));
                uDJ02.setAgente(mAgente, Int32.Parse(this.cmbCargos.SelectedValue.ToString()), Int32.Parse(this.cmbSituacionDeRevista.SelectedValue.ToString()));

                //      System.Windows.Forms.MessageBox.Show("anexo" + this.cmbAnexo.Text.Substring(0, 2) + " " + (int)cmbCargos.SelectedValue + );
                dgLicencias.DataSource = results;
            }
            catch (Exception ex)
            {

            }
            



        }



        private void dateTimePicker3_ValueChanged(object sender, EventArgs e)
        {
            ValidarFecha();
        }



        private void dtpFechaDesde_ValueChanged(object sender, EventArgs e)
        {
            ValidarFecha();
        }


        private bool ValidarFecha()
        {
            bool bRet;
            bRet = true;
            if (this.dtpFechaHasta.Value.CompareTo(dtpFechaDesde.Value) < 0)
            {
                System.Windows.Forms.MessageBox.Show("La fecha desde debe ser menor que la fecha hasta");
                dtpFechaDesde.Focus();
                bRet = false;
            }
            else
            {
                bRet = true;
            }
            return bRet;
        }



        private void button2_Click(object sender, EventArgs e)
        {
            /*       dbProyectoEscuelaDataContext db = new dbProyectoEscuelaDataContext();

             DataSet ds;
                ds = (DataSet) db.getLicenciasAgente(1, 2, 3, "9");
            */


        }

        private void btnAnterior_Click_1(object sender, EventArgs e)
        {


            PreviousTab();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (this.tabFormularios.SelectedTab.Name == "SR-01")
            {
                printSR01();

            }
            else if (this.tabFormularios.SelectedTab.Name == "DJ-02")
            {
                printSR02();

            }
            else if (this.tabFormularios.SelectedTab.Name == "DJ-01")
            {
                printDJ01();
            }

        }

        private void printDJ01()
        {
            uDJ01.printReport();
        }

        private void printSR02()
        {
            uDJ02.printReport();

        }

        private void printSR01()
        {
            //reparticion
            //fecha_solicitud
            //establecimiento_medico
            //apynom
            //domicilio_agente
            //situacion_de_revista
            //fecha_desde

            dsFormularios.SR01DataTable dt;
            dsFormularios.SR01Row dr;

            // Crea una nueva fila en blanco
            dt = new dsFormularios.SR01DataTable();
            dr = dt.NewSR01Row();
            // Carga los datos de la fila agregada
            dr.reparticion = "EGB Nro 373. America";
            //dr.domicilio_agente
            dr.fecha_solicitud = this.dtpFechaLicencia.Text;
            dr.establecimiento_medico = uSR01.txtEstablecimiento.Text;

            dr.tipoDoc = this.cmbTipoDoc.Text;
            dr.nDoc = this.txtnDoc.Text;
            dr.apynom = this.lblApyNom.Text;
            dr.domicilio_agente = mAgente.Domicilio;
            // dr.situacion_de_revista = mAgente.getSituacionDeRevista((int)cmbCargos.SelectedValue);
            dr.fecha_desde = this.dtpFechaDesde.Text;

            if (this.uSR01.dgFamiliares.SelectedRows.Count > 0)
            {
                dr.familiar_apynom = uSR01.dgFamiliares.SelectedRows[0].Cells["apellido"].Value.ToString() + " " +
                                 uSR01.dgFamiliares.SelectedRows[0].Cells["nombre"].Value.ToString();

                dr.parentesco = uSR01.dgFamiliares.SelectedRows[0].Cells["parentesco"].Value.ToString();

            }

            dr.cmbPedido = uSR01.cmbPedido.Text;
            dr.domicilio_pedido = uSR01.txtDomicilioPedido.Text;
            if (this.uSR01.chkFueraLugarResidencia.Checked)
            {
                dr.domicilio_pedido_fuera_lugar_residencia = uSR01.txtDomicilioFueraLugarResidencia.Text;
            }

            dr.domicilio_pariente_int = uSR01.txtDomicilioFamiliar.Text;


            //Agrega la fila a la tabla
            dt.Rows.Add(dr);

            rptSolicitudReconocMedicoSR01 rpt;
            rpt = new rptSolicitudReconocMedicoSR01();

            rpt.SetDataSource((DataTable)dt);
            //Llama al formulario de impresion
            frmReportForm frm;
            frm = new frmReportForm(rpt);
            frm.ShowDialog();

        }

        private void btnSiguiente_Click(object sender, EventArgs e)
        {
           // int idLicencia;

            if (currentTab == 0)
            {

                if (this.dgLicencias.SelectedRows.Count != 0)
                {

                    //  this.tabFormularios.DeselectTab(currentTab);
                    midLicencia = Int32.Parse(this.dgLicencias.SelectedRows[0].Cells["idLicencia"].Value.ToString());

                    Formulario myFormulario = new Formulario();
                    var formularios = myFormulario.getFormularios(midLicencia);
                    TabPage tp;

                    foreach (TabPage t in tabFormularios.TabPages)
                    {
                        if (t.Name != "principal")
                        {
                            tabFormularios.TabPages.Remove(t);
                        }
                    }

                    foreach (Formulario f in formularios)
                    {

                        if (this.tabFormularios.TabPages[f.formulario1] == null)
                        {
                            tp = new TabPage(f.formulario1);
                            tp.BackColor = Color.Transparent;
                            uSR01.BackColor = Color.Transparent;

                            tp.Name = f.formulario1;

                            if (f.formulario1 == "SR-01")
                            {                             
                                tp.Controls.Add(uSR01);
                                uSR01.setAgente(mAgente);
                            }
                            else if (f.formulario1 == "OL-01")
                            {
                                tp.Controls.Add(uOl01);
                                uOl01.setAgente(mAgente);
                            }
                            else if (f.formulario1 == "DJ-02")
                            {
                                tp.Controls.Add(uDJ02);

                            }
                            else if (f.formulario1 == "DJ-01")
                            {
                                tp.Controls.Add(uDJ01);
                                uDJ01.setAgente(mAgente,Int32.Parse(this.cmbCargos.SelectedValue.ToString()),Int32.Parse(this.cmbSituacionDeRevista.SelectedValue.ToString()));
                            }

                            this.tabFormularios.TabPages.Insert(this.tabFormularios.TabPages.Count, tp);

                        }
                    }

                    NextTab();
                }


            }
            else
            {
                NextTab();
            }

        }

        private void NextTab()
        {

            if (currentTab < this.tabFormularios.TabCount - 1)
            {
                //if (currentTab == 1)
                //{
                //    currentTab = 0;
                //}
                currentTab += 1;
                this.tabFormularios.SelectTab(currentTab);


                

                if (currentTab == this.tabFormularios.TabCount - 1)
                {
                    btnGuardar.Visible = true;
                }
                else
                {
                    btnGuardar.Visible = false;

                }

            }
            else
            {
                
            }


        }
        private void PreviousTab()
        {

            if (currentTab > 0 && this.tabFormularios.TabCount > 1)
            {
                currentTab -= 1;
                this.tabFormularios.SelectTab(currentTab);
            }

            btnGuardar.Visible = false;

        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void button2_Click_1(object sender, EventArgs e)
        {


        }

        private void Tab_Click(object sender, EventArgs e)
        {
            // currentTab = e.;


        }

        private void tabFormularios_TabIndexChanged(object sender, EventArgs e)
        {

        }

        private void tabFormularios_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void tabFormularios_Selecting(object sender, TabControlCancelEventArgs e)
        {
            currentTab = e.TabPageIndex;
            if (currentTab == 0)
            {
                btnImprimir.Visible = false;
            }else
            {

                btnImprimir.Visible = true;
            }

            if (currentTab == this.tabFormularios.TabCount - 1)
            {
                btnGuardar.Visible = true;
            }
            else
            {
                btnGuardar.Visible = false;
            }

                
            //   e.Cancel = true;
            //   NextTab();
        }

        private void dgLicencias_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void cmbCargos_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                CargarSituacionDeRevista(Int32.Parse(this.cmbCargos.SelectedValue.ToString()));
            }
            catch (Exception ex)
            {
            }



        }

        private void CargarSituacionDeRevista(int idCargo)
        {
            /*
             * Select SituacionDeRevista 
             * From Cargos 
             * Where idCargo = @idCargo
             * 
             * Cargar el combo con esto
             * 
             * ValueMember = idSituacionDeRevista
             * DisplayMember = descripcion
             * 
             * 
             */

            cmbSituacionDeRevista.DataSource = mAgente.getSituacionDeRevista(idCargo); ;
            cmbSituacionDeRevista.DisplayMember = "Descripcion";
            cmbSituacionDeRevista.ValueMember = "idSituacionDeRevista";


        }

        private void cmbCargos_SelectedValueChanged(object sender, EventArgs e)
        {
         
        }

        private void GroupBox2_Enter(object sender, EventArgs e)
        {

        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                db.AltaLicenciaPorAgente(10,
                (int)mAgente.idPersona,
                Int32.Parse(this.cmbSituacionDeRevista.SelectedValue.ToString()),
                midLicencia,
                this.dtpFechaDesde.Value,
                this.dtpFechaHasta.Value,
                this.dtpFechaLicencia.Value,
                Int32.Parse(this.cmbCargos.SelectedValue.ToString()), 0);

                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }

            MessageBox.Show("La solicitud de licencia ha sido guardada.");

        }

        private void cmbTipoDoc_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void frmLicXSaludAutorizadoXdir_Load(object sender, EventArgs e)
        {

        }


    }
}






